export interface DatabaseInfoSearchParamModel {
    aliasName: string | undefined,
    driverInfo: string | undefined,
    userName: string | undefined,
}

export interface DatabaseInfoListModel {
    id: string | undefined,
    aliasName: string | undefined,
    dbType: number | undefined,
    driverInfo: string | undefined,
    userName: string | undefined,
    createTime: Date | undefined,

}

export interface DatabaseInfoDetailModel {
    id: string | undefined,
    aliasName: string | undefined,
    dbType: number | undefined,
    driverInfo: string | undefined,
    remoteUrl: string | undefined,
    userName: string | undefined,

}

export interface DatabaseInfoAddParamModel {
    aliasName: string | undefined,
    dbType: number | undefined,
    driverInfo: string | undefined,
    remoteUrl: string | undefined,
    userName: string | undefined,
    password: string | undefined,
}

export interface DatabaseInfoEditParamModel {
    id: string | undefined,
    aliasName: string | undefined,
    dbType: number | undefined,
    driverInfo: string | undefined,
    remoteUrl: string | undefined,
    userName: string | undefined,
    password: string | undefined,
}

export interface DatabaseInfoDeleteParamModel {
    idList: string[],
}

export interface TaskScriptSearchParamModel {
    scriptName: string | undefined,
}

export interface TaskScriptListModel {
    id: string | undefined,
    scriptName: string | undefined,
    remark: string | undefined,
    createTime: Date | undefined,

}

export interface TaskScriptDetailModel {
    id: string | undefined,
    scriptName: string | undefined,
    script: string | undefined,
    remark: string | undefined,

}

export interface TaskScriptAddParamModel {
    scriptName: string | undefined,
    script: string | undefined,
    remark: string | undefined,
}

export interface TaskScriptEditParamModel {
    id: string | undefined,
    scriptName: string | undefined,
    script: string | undefined,
    remark: string | undefined,
}

export interface TaskScriptDeleteParamModel {
    idList: string[],
}

export interface TaskInfoSearchParamModel {
    taskName: string | undefined,
    taskType: number | undefined,
    sourceDatabase: string | undefined,
    targetDatabase: string | undefined,
    targetTable: string | undefined,
}

export interface TaskInfoListModel {
    id: string | undefined,
    taskName: string | undefined,
    taskType: number | undefined,
    taskStatus: number | undefined,
    sourceDatabase: string | undefined,
    targetDatabase: string | undefined,
    targetTable: string | undefined,
    targetOperateType: number | undefined,
    clearByBefore: number | undefined,
    createTime: Date | undefined,

}

export interface TaskInfoDetailModel {
    id: string | undefined,
    taskName: string | undefined,
    taskType: number | undefined,
    taskStatus: number | undefined,
    sourceDatabase: string | undefined,
    scriptId: string | undefined,
    dataOffset: number | undefined,
    targetDatabase: string | undefined,
    targetTable: string | undefined,
    targetOperateType: number | undefined,
    clearByBefore: number | undefined,
    remark: string | undefined,
    fieldList: Array<TaskFieldMappingInfoListModel> | [],
}

export interface TaskInfoAddParamModel {
    taskName: string | undefined,
    taskType: number | undefined,
    sourceDatabase: string | undefined,
    scriptId: string | undefined,
    dataOffset: number | undefined,
    targetDatabase: string | undefined,
    targetTable: string | undefined,
    targetOperateType: number | undefined,
    clearByBefore: number | undefined,
    remark: string | undefined,
    fieldList: Array<FieldAddModel>,
}

export interface TaskInfoEditParamModel {
    id: string | undefined,
    taskName: string | undefined,
    taskType: number | undefined,
    sourceDatabase: string | undefined,
    scriptId: string | undefined,
    dataOffset: number | undefined,
    targetDatabase: string | undefined,
    targetTable: string | undefined,
    targetOperateType: number | undefined,
    clearByBefore: number | undefined,
    remark: string | undefined,
    fieldList: Array<FieldUpdateModel>,
}

export interface TaskInfoDeleteParamModel {
    idList: string[],
}


export interface TaskFieldMappingInfoListModel {
    id: string | undefined,
    taskId: string | undefined,
    sourceField: string | undefined,
    idFlag: number | undefined,
    targetField: string | undefined,
    expression: string | undefined,
    remark: string | undefined,
}

export interface FieldAddModel {
    sourceField: string | undefined,
    idFlag: number | undefined,
    targetField: string | undefined,
    expression: string | undefined,
    remark: string | undefined,
}

export interface FieldUpdateModel {
    id: string | undefined,
    taskId: string | undefined,
    sourceField: string | undefined,
    idFlag: number | undefined,
    targetField: string | undefined,
    expression: string | undefined,
    remark: string | undefined,
}

export interface TaskGroupInfoSearchParamModel {
    groupName: string | undefined,
    executeStatus: number | undefined,
}

export interface TaskGroupInfoListModel {
    id: string | undefined,
    groupName: string | undefined,
    executeType: number | undefined,
    executeStatus: number | undefined,
    executeIp: string | undefined,
    executeBatchNo: string | undefined,
    lastExecuteTime: Date | undefined,
    createTime: Date | undefined,
    updateTime: Date | undefined,

}

export interface TaskGroupInfoDetailModel {
    id: string | undefined,
    groupName: string | undefined,
    executeType: number | undefined,
    delaySeconds: number | undefined,
    executeStatus: number | undefined,
    cron: string | undefined,
    executeIp: string | undefined,
    executeBatchNo: string | undefined,
    lastExecuteTime: Date | undefined,
    remark: string | undefined,
    taskList: Array<TaskGroupRelationListModel>,
}

export interface TaskGroupInfoAddParamModel {
    groupName: string | undefined,
    executeType: number | undefined,
    delaySeconds: number | undefined,
    cron: string | undefined,
    remark: string | undefined,
    taskIdList: Array<String>,
}

export interface TaskGroupInfoEditParamModel {
    id: string | undefined,
    groupName: string | undefined,
    executeType: number | undefined,
    delaySeconds: number | undefined,
    cron: string | undefined,
    remark: string | undefined,
    taskIdList: Array<String>,
}

export interface TaskGroupInfoDeleteParamModel {
    idList: string[],
}

export interface TaskGroupRelationListModel {
    id: string | undefined,
    taskGroupId: string | undefined,
    taskId: string | undefined,
    taskName: string | undefined,
    taskType: number | undefined,
    sortNo: number | undefined,
}

export interface TaskExecuteInfoSearchParamModel {
    groupName: string | undefined,
    executeBatchNo: string | undefined,
}

export interface TaskExecuteInfoListModel {
    id: string | undefined,
    executeStatus: number | undefined,
    startTime: Date | undefined,
    endTime: Date | undefined,
    executeBatchNo: string | undefined,
    groupName: string | undefined,
    taskName: string | undefined,
    executeIp: string | undefined,
    taskType: number | undefined,
    createTime: Date | undefined,

}
